widget: Don't create the style context if not necessary
authorBenjamin Otte <otte@redhat.com>
Sat, 26 Mar 2011 14:22:11 +0000 (15:22 +0100)
committerBenjamin Otte <otte@redhat.com>
Sat, 26 Mar 2011 23:48:25 +0000 (00:48 +0100)
If all we want to do is update the context's screen, we don't need to
create it if it doesn't exist yet.

gtk/gtkwidget.c

index bcbb91a850be376b635e788be9b1a1b0c402bd43..f52ac29dde86452aac85e5f10dde8d3dad972237 100644 (file)
@@ -8529,7 +8529,7 @@ do_screen_change (GtkWidget *widget,
 {
   if (old_screen != new_screen)
     {
-      GtkStyleContext *context;
+      GtkWidgetPrivate *priv = widget->priv;
 
       if (old_screen)
        {
@@ -8540,8 +8540,8 @@ do_screen_change (GtkWidget *widget,
 
       _gtk_tooltip_hide (widget);
 
-      context = gtk_widget_get_style_context (widget);
-      gtk_style_context_set_screen (context, gtk_widget_get_screen (widget));
+      if (new_screen && priv->context)
+        gtk_style_context_set_screen (priv->context, new_screen);
 
       g_signal_emit (widget, widget_signals[SCREEN_CHANGED], 0, old_screen);
     }